The streaming of multimedia (e.g., videos) to a client over a network may be based on adaptive bitrate streaming. For example, bandwidth and processing capability of the client may be detected in real time. In response to a change of the detected bandwidth and processing capability, the video stream accessed by the client may be adjusted accordingly. As an example, a video may be encoded at different bitrates. The client may switch from a first encoding of the video to a second encoding of the video in response to the changing resources or capabilities of the client.